midi2.0系列文档教程

您所在的位置:网站首页 roland jp8000 参数 midi2.0系列文档教程

midi2.0系列文档教程

2023-03-26 07:55| 来源: 网络整理| 查看: 265

本文简介

midi2.0已经发布了很久,但能找到的中文教程依然是几乎没有,所以为了自己学习的同时也方便他人,便有了此系列文章。

在此系列文档更新差不多后,笔者也有可能会根据情况,更新Kontakt开发文档与VST开发文档。

因为本人水平有限,英语很渣,翻译不妥亦或者翻译错误之处,再或者其它错误等,还请指正,非常感谢!本系列文章笔者主要以midi官方文档为参考进行编写,该系列文章版权为本人所有,拒绝转载!

本文适合以下人群阅读

音乐爱好者想开发MIDI播放器,MIDI打谱软件等MIDI技术应用的软件的开发者想开发Kontakt音源,VST音源,VST效果器等插件,音源相关的开发者想开发MIDI控制器,MIDI键盘等硬件设备的开发者

因为本系列文档涉及内容面较多,建议阅读本系列文档对以下基础内容有所了解

信号相关概念,例如,比特率,二进制,上升沿,等等 数字音频工作站生态周边概念,例如VST,Kontakt,MIDI,CC控制器等乐理基础,例如C大调,纯一度,音高,中央C,节拍等概念python编程语言。后续作者讲解MIDI文件时会以python代码来演示操作MIDI文件(可选)midi与midi2.0简介

MIDI,全称Musical Instrument Digital Interface,乐器数字接口,可以把MIDI理解成是一种协议、一种标准、或是一种技术,但它并不是单指某个硬件设备。相较于常见的音频信号,midi则记录的是音符、控制参数等指令。

midi于20世纪80年代初为解决电声乐器之间的通信问题而提出。 1981年,Dave Smith (大卫·史密斯,美国合成器品牌Sequential的CEO及创始人)和 Chet Wood向音频工程学会提交了一篇名为“通用合成器接口”的论文,这篇论文的内容便是我们今天的MIDI的基础。为了解决电子乐器的通讯问题,1982年,国际乐器制造者协会的十几家厂商(主要是美国和日本的厂商)会聚一堂,会议通过了美国Sequential Circuits公 司的大卫·史密斯提出的“通用合成器接口”的方案,并改名为“音乐设备数字接口”,即“Musical Instrument Digital Interface”缩写为“MIDI”,公布于世。1983年,MIDI协议 1.0版正式制定出来。1984,日本罗兰(Roland)公司于提出了GS标准,。1985年11月,国际乐器制造者协会公布了《MIDI 1.0版的细节规定》。此外,为保证MIDI的健康发展,还专门成立了“MIDI厂商协会”和“日本MIDI标准委员会”等组织,MIDI标准从成长阶段步入了成熟阶段。1991年,1991年,国际MIDI生产者协会(MMA)制定了通用MIDI标准——GM,该标准以日本罗兰公司的通用合成器GS标准为基础而制订,并得到了Windows操作系统的支持。1994年,YAMAHA公司在GM标准上于推出了自己的XG的MIDI格式。2020年,MIDI 2.0规范正式发布。

随着技术的发展,midi1.0已经开始显得不太够用了。于是,在2019年由MIDI制造商协会(MMA)和日本的音乐电子行业协会(AMEI)发布了MIDI 2.0协议草案,并于2020年正式发表MIDI 2.0。

midi2.0是midi1.0的扩展,而不是替代。midi2.0除了实现了midi1.0之外,还实现了设备间的相互通讯,资源的交换,自动配置,根据设备的支持情况自动匹配协议,即向下兼容。除此之外还将拥有更高的控制精度,更多的通道数,并为未来预留了充足的空间,若将来需要扩展新功能可以直接往里面加规范即可,而不必修改整个MIDI 2.0协议。

内容板块

本系列文章将会按照midi2.0的主要内容分成以下几个板块,当然我也可能根据后续的学习理解而调整板块内容。

通用MIDI数据包(UMP)与MIDI协议

MIDI2.0使用新的“通用MIDI包”格式,用于携带MIDI1.0协议消息和MIDI2.0协议消息。“通用MIDI数据包”格式适用于高速传输MIDI数据,比如USB、网络、个人计算机操作系统内运行的应用程序之间传输。

MIDI能力查询(MIDI-CI)

MIDI2.0由MIDI能力查询启动。MIDI能力查询提供以下机制:当两个支持双向通讯的设备互连后,先使用MIDI1.0询问彼此的能力。如果两个设备均支持MIDI新特性,则使用MIDI2.0。如果其中一个设备不支持任何MIDI新特性,则两个设备一如既往地使用MIDI1.0进行通讯。

MIDI能力查询包括:设备协议配置(Profile Configuration)、设备信息交换(Property Exchange)、通信协议协商(Protocol Negotiation)。

配置文件设置(Profile Configuration)

MIDI2.0的每个设备里都保存着一份MIDI-CI的profile(配置文件),当跟其它设备连接的时,就会把这份配置文件传输给对方,这样设备就可以使用该功能自行配置其连接和相关设置。一个配置文件里定义了一系列的规则,比如一旦对方收到发来的MIDI消息必须如何给出反馈,来达到一个特定的目的或者操作一个指定的应用程序。除了定义如何回应MIDI消息以外,还可能会定义需要对方设备具备什么功能。

资源交互(Property Exchange)

资源交换指两个设备互相连接后使用MIDI-CI定义的Universal System Exclusive(通用系统专用消息)所进行的一系列的发现、获取、设置设备属性的操作机制。

MIDI数据的USB传输

MIDI数据的传输多种多样,例如蓝牙,互联网等等。最初的MIDI 1.0规范要求使用5针DIN电缆连接MIDI设备,不过随着5针DIN规范已经更新,已不再适合传输通用MIDI数据包。

碍于篇幅和技术能力,本文将只讲解USB的传输。伴随着MIDI2.0的发布,USB的MIDI2.0传输定义也进行了更新,同时还保留了与MIDI1.0的向后兼容性。

MIDI文件

MIDI文件的目的是提供一种在同一或不同计算机上的不同程序之间交换带时间戳的MIDI数据方法,它包含一个或多个 MIDI 流,以及每个事件和它的时间信息。

参考内容:

https://baike.baidu.com/item/MIDI/217824?fr=aladdin

https://zhuanlan.zhihu.com/p/70484565

https://www.midifan.com/modulenews-detailview-31963.htm

http://www.cmia.com.cn/xzdongtai/6987.html

https://www.midi.org/specifications



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3